//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Linq;

using ProjectBase.Core;

namespace $safeprojectname$
{
    /// <summary>Base restrictions for all BusinessObject</summary>
    [Serializable]
    public class BusinessObjectFilter : BaseFilter<int>
    {
        #region members

        private IDictionary<string, object> _additional;

        #endregion members

        public virtual IDictionary<string, object> Additional
        {
            get { return _additional ?? (_additional = new Dictionary<string, object>()); }
            set { _additional = value; }
        }

        // IAuditable
        public virtual IList<DateTime?> DateCreated { get; set; }
        public virtual DateTime? DateCreatedFrom { get; set; }
        public virtual DateTime? DateCreatedTo { get; set; }

        public virtual IList<DateTime?> DateModified { get; set; }
        public virtual DateTime? DateModifiedFrom { get; set; }
        public virtual DateTime? DateModifiedTo { get; set; }

        public virtual IList<int?> CreatedById { get; set; }
        public virtual IList<int?> ModifiedById { get; set; }

        // IHaveActiveMode
        public virtual IList<bool?> IsActive { get; set; }

        public virtual IList<bool?> IsVisible { get; set; }

        // IHaveCountry
        public virtual string CountryCode { get; set; }
    }
}